/**
 * 
 */
package com.objectdraw.server.tools;

import com.objectdraw.server.data.Action;

/**
 * Since each client side tool handles actions and events differently this class is an
 * abstraction of that notion.  It allows each client side to tool to store only the 
 * information is needs when a particular action occurs.
 * @author Harrison
 */
public abstract class ServerTool {
	protected String name = "";
	protected String color = "black";
	
	public ServerTool(){
	}
	
	/**
	 * Returns the name of this server tool
	 * @return
	 */
	public String getToolName(){
		return name;
	}
	
	/**
	 * Set the color this tool should draw its object with
	 * @param color
	 */
	public void setColor(String color){
		this.color = color;
	}
	
	/**
	 * Add an action this tool should respond to. This method is responsible for parsing
	 * actions that detail how objects of this tool should be drawn
	 * @param act
	 */
	abstract public void addAction(Action act);
	
}
